import { post, get } from '@/utils/request'

/**
 * 用户登录
 * @param {Object} data 
 * @returns {Promise}
 */
export const login = (data) => {
  return post('/app/user/login', data)
}

/**
 * 发送验证码
 * @param {String} mobile 手机号
 * @returns {Promise}
 */
export const sendSms = (mobile) => {
  return get('/app/common/sendSms', { mobile })
}

/**
 * 用户注册
 * @param {Object} data 注册信息
 * @returns {Promise}
 */
export const register = (data) => {
  return post('/app/user/register', data)
}

/**
 * 重置密码
 * @param {Object} data 重置密码信息
 * @returns {Promise}
 */
export const resetPassword = (data) => {
  return post('/app/user/resetPassword', data)
}

/**
 * 获取用户信息
 * @returns {Promise<Object>} 用户信息
 */
export const getUserInfo = () => {
  return new Promise((resolve, reject) => {
    const token = uni.getStorageSync('token');
    if (!token) {
      reject(new Error('未登录'));
      return;
    }
    
    // 使用封装的请求方法
    get('/app/user/info').then(res => {
      if (res && res.data) {
        resolve(res.data);
      } else {
        reject(new Error('获取用户信息失败'));
      }
    }).catch(err => {
      reject(err);
    });
  });
};

/**
 * 获取用户头像
 * @returns {Promise<string>} 头像URL
 */
export const getUserAvatar = () => {
  return new Promise((resolve, reject) => {
    getUserInfo()
      .then(userInfo => {
        if (userInfo && userInfo.avatar) {
          resolve(userInfo.avatar);
        } else {
          // 如果没有头像，返回默认头像
          resolve('../../image/R.jpg');
        }
      })
      .catch(error => {
        // 获取失败时，返回默认头像
        resolve('../../image/R.jpg');
      });
  });
};

export default {
  login,
  sendSms,
  register,
  resetPassword
} 